#define _CRT_SECURE_NO_WARNINGS 1

#include<deque>
#include<iostream>
#include<list>
#include<vector>
using namespace std;

namespace xrw
{
    template<class T, class Con = deque<T>>
    class queue
    {
    public:
        queue()
        {

        }

        void push(const T& x)
        {
            con.push_back(x);
        }

        void pop()
        {
            con.pop_front();
        }

        T& back()
        {
            return con.back();
        }

        const T& back()const
        {
            return con.back();
        }

        T& front()
        {
            return con.front();
        }

        const T& front()const
        {
            return con.front();
        }

        size_t size()const
        {
            return con.size();
        }

        bool empty()const
        {
            return con.empty();
        }

    private:
        Con con;
    };
};